package main
import "fmt"

type Animal1 interface {
	SetName(string)
}

type Animal2 interface {
	GetName() string
}

type Dog struct {
	Name string
}

func (d *Dog) SetName(name string) {
	d.Name = name
}

func (d *Dog) GetName() string {
	return d.Name
}

func main() {
	var d = &Dog{
		Name: "dog",
	}
	var d1 Animal1 = d 
	var d2 Animal2 = d
	d1.SetName("dog1")
	fmt.Println(d2.GetName())
}

